//自调用函数  食物
(function () {
  var elements = [];//用来保存小方块的
  //食物是一个对象 有宽宥身高  有恒纵坐标  先定义构造函数  然后创建对象
  function Food (x, y, width, height, color) {
    //横纵坐标
    this.x = x || 0;
    this.y = y || 0;
    //款和高
    this.width = width || 20;
    this.height = height || 20;
    //对象方块颜色
    this.color = color || 'green';
  }
  //为原型添加初始化方法 （作用  在页面显示这个食物 ）
  //因为食物要在地图上显示 所以 需要地图这个参数（map--就是页面上的。class=map的这个div）
  Food.prototype.init = function (map) {
    //先删除这个小食物
    //外部无法访问的函数
    remove();
    //创建div
    var div = document.createElement('div');
    //将div加入map地图中
    map.appendChild(div);
    //设置div的样式 宽高颜色 脱离文档流 横纵坐标
    div.style.width = this.width + 'px';
    div.style.height = this.height + 'px';
    div.style.backgroundColor = this.color;
    div.style.position = 'absolute';
    div.style.borderRadius = '5px';
    //规划 横纵随机坐标 并乘以多少个宽  衡量长度
    this.x = parseInt(Math.random() * (map.offsetWidth / this.width)) * this.width;
    this.y = parseInt(Math.random() * (map.offsetHeight / this.height)) * this.height;
    //设置div的随机位置
    div.style.left = this.x + 'px';
    div.style.top = this.y + 'px';
    //将div加入到数组里面  以便于删除
    elements.push(div);
  };
  //私有函数   删除食物
  function remove () {
    for (var i = 0; i < elements.length; i++) {
      var ele = elements[i];
      ele.parentNode.removeChild(ele);
      elements.splice(i, 1);
    }
  }
  window.Food = Food;
}());